-
Notifications
You must be signed in to change notification settings - Fork 342
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement dynamic block fetching based on block size #2611
Conversation
Coverage report for
|
St.❔ |
Category | Percentage | Covered / Total |
---|---|---|---|
🟡 | Statements | 66.9% (-3.21% 🔻) |
20332/30392 |
🟡 | Branches | 79.33% (+1.04% 🔼) |
2764/3484 |
🟡 | Functions | 70.28% (+7.78% 🔼) |
1140/1622 |
🟡 | Lines | 66.9% (-3.21% 🔻) |
20332/30392 |
Show new covered files 🐣
St.❔ |
File | Statements | Branches | Functions | Lines |
---|---|---|---|---|---|
🟢 | ... / migrate.ts |
85.34% | 16.67% | 100% | 85.34% |
🟢 | ... / migrate-abis.controller.ts |
95% | 87.5% | 100% | 95% |
🟢 | ... / constants.ts |
100% | 100% | 100% | 100% |
🟢 | ... / index.ts |
100% | 100% | 100% | 100% |
🟢 | ... / ethereum.ts |
82.28% | 83.33% | 100% | 82.28% |
🟢 | ... / migrate-manifest.controller.ts |
88% | 73.33% | 88.89% | 88% |
🟢 | ... / migrate-mapping.controller.ts |
100% | 100% | 100% | 100% |
🟢 | ... / migrate-controller.ts |
92.41% | 85.19% | 100% | 92.41% |
🟢 | ... / migrate.fixtures.ts |
100% | 100% | 100% | 100% |
🟢 | ... / migrate-schema.controller.ts |
97.23% | 79.49% | 100% | 97.23% |
🔴 | ... / types.ts |
0% | 0% | 0% | 0% |
🟢 | ... / createProject.fixtures.ts |
87.07% | 75% | 100% | 87.07% |
🟢 | ... / config.ts |
100% | 100% | 100% | 100% |
🟢 | ... / index.ts |
100% | 100% | 100% | 100% |
🔴 | ... / moduleLoader.ts |
56% | 40% | 100% | 56% |
🟢 | ... / types.ts |
100% | 100% | 100% | 100% |
🔴 | ... / utils.ts |
0% | 0% | 0% | 0% |
🟢 | ... / networkFamily.ts |
92.59% | 88.89% | 100% | 92.59% |
🟡 | ... / IPFSHTTPClientLite.ts |
75.74% | 80% | 88.89% | 75.74% |
🟢 | ... / index.ts |
100% | 100% | 100% | 100% |
🟢 | ... / utils.ts |
92% | 66.67% | 100% | 92% |
🟡 | ... / admin.controller.ts |
77.24% | 96.3% | 78.57% | 77.24% |
🔴 | ... / blockRange.ts |
46.67% | 100% | 50% | 46.67% |
🟢 | ... / index.ts |
100% | 100% | 100% | 100% |
🟢 | ... / SubqueryProject.ts |
85.52% | 83.33% | 71.43% | 85.52% |
🟢 | ... / core.module.ts |
100% | 100% | 100% | 100% |
🟢 | ... / dictionary.fixtures.ts |
100% | 100% | 100% | 100% |
🟡 | ... / monitor.service.ts |
69.61% | 85.88% | 94.12% | 69.61% |
🔴 | ... / sandbox.service.ts |
33.33% | 50% | 25% | 33.33% |
🟡 | ... / baseCache.service.ts |
62.12% | 88.89% | 66.67% | 62.12% |
🔴 | ... / baseStoreModel.service.ts |
57.41% | 66.67% | 80% | 57.41% |
🟢 | ... / cacheable.ts |
89.66% | 75% | 100% | 89.66% |
🟡 | ... / csvStore.service.ts |
77.78% | 80% | 80% | 77.78% |
🟢 | ... / index.ts |
100% | 100% | 100% | 100% |
🟡 | ... / cacheMetadata.ts |
62.11% | 70% | 86.67% | 62.11% |
🟢 | ... / index.ts |
100% | 100% | 100% | 100% |
🔴 | ... / metadata.ts |
53.01% | 71.43% | 55.56% | 53.01% |
🟢 | ... / utils.ts |
100% | 100% | 100% | 100% |
🟢 | ... / cacheModel.ts |
86.33% | 83.12% | 85% | 86.33% |
🟢 | ... / index.ts |
100% | 100% | 100% | 100% |
🟡 | ... / model.ts |
77.36% | 73.91% | 81.82% | 77.36% |
🟢 | ... / utils.ts |
100% | 100% | 100% | 100% |
🟡 | ... / cachePoi.ts |
76.84% | 89.47% | 85.71% | 76.84% |
🟢 | ... / index.ts |
100% | 100% | 100% | 100% |
🔴 | ... / poi.ts |
41.07% | 71.43% | 44.44% | 41.07% |
🟢 | ... / setValueModel.ts |
85.26% | 83.78% | 85.71% | 85.26% |
🟡 | ... / storeCache.service.ts |
63.35% | 84.38% | 73.33% | 63.35% |
🔴 | ... / storeModel.service.ts |
56.79% | 50% | 57.14% | 56.79% |
🟢 | ... / types.ts |
100% | 100% | 100% | 100% |
🟢 | ... / utils.ts |
93.75% | 66.67% | 100% | 93.75% |
🟢 | ... / worker.core.module.ts |
100% | 100% | 0% | 100% |
🔴 | ... / worker.monitor.service.ts |
39.53% | 100% | 0% | 39.53% |
🔴 | ... / meta.controller.ts |
53.33% | 100% | 0% | 53.33% |
🟡 | ... / meta.module.ts |
60% | 100% | 0% | 60% |
🟡 | ... / process.ts |
61.29% | 66.67% | 40% | 61.29% |
🔴 | ... / foreceClean.init.ts |
47.62% | 100% | 0% | 47.62% |
🔴 | ... / reindex.init.ts |
33.33% | 100% | 0% | 33.33% |
🟡 | ... / autoQueue.ts |
64.88% | 87.18% | 73.33% | 64.88% |
🟢 | ... / index.ts |
100% | 100% | 100% | 100% |
🔴 | ... / queue.ts |
45.83% | 80% | 66.67% | 45.83% |
🟡 | ... / rampQueue.ts |
77.66% | 91.3% | 87.5% | 77.66% |
🟢 | ... / string.ts |
100% | 100% | 100% | 100% |
🔴 | ... / datasourceProcessors.ts |
0% | 0% | 0% | 0% |
🔴 | ... / index.ts |
0% | 0% | 0% | 0% |
🔴 | ... / types.ts |
0% | 0% | 0% | 0% |
🔴 | ... / networking.ts |
31.58% | 100% | 0% | 31.58% |
Show files with reduced coverage 🔻
St.❔ |
File | Statements | Branches | Functions | Lines |
---|---|---|---|---|---|
🔴 | ... / delete.ts |
48.72% (-5.57% 🔻) |
100% | 50% (+50% 🔼) |
48.72% (-5.57% 🔻) |
🔴 | ... / promote.ts |
44.19% (-4.53% 🔻) |
100% | 50% (+50% 🔼) |
44.19% (-4.53% 🔻) |
🟡 | ... / add.ts |
61.29% (-0.78% 🔻) |
100% | 50% (+50% 🔼) |
61.29% (-0.78% 🔻) |
🟢 | ... / publish.ts |
83.72% (-5.61% 🔻) |
60% (+2.86% 🔼) |
100% | 83.72% (-5.61% 🔻) |
🔴 | ... / add-chain-controller.ts |
39.62% (-0.45% 🔻) |
66.67% | 30% | 39.62% (-0.45% 🔻) |
🟢 | ... / codegen-controller.ts |
88.52% (-0.86% 🔻) |
85.9% (+10.32% 🔼) |
100% | 88.52% (-0.86% 🔻) |
🟡 | ... / deploy-controller.ts |
64.66% (+27.19% 🔼) |
72.73% (-5.05% 🔻) |
64.29% (+39.29% 🔼) |
64.66% (+27.19% 🔼) |
🟢 | ... / generate-controller.ts |
97.75% (+0.1% 🔼) |
93.24% (-0.79% 🔻) |
100% | 97.75% (+0.1% 🔼) |
🟡 | ... / init-controller.ts |
73.06% (+2.57% 🔼) |
54.55% (-13.45% 🔻) |
61.11% (+7.78% 🔼) |
73.06% (+2.57% 🔼) |
🟢 | ... / project-controller.ts |
80.72% (-16.54% 🔻) |
50% (-10% 🔻) |
75% (-25% 🔻) |
80.72% (-16.54% 🔻) |
🟡 | ... / publish-controller.ts |
78.39% (-1.86% 🔻) |
63.64% (-7.47% 🔻) |
83.33% (-16.67% 🔻) |
78.39% (-1.86% 🔻) |
🟡 | ... / load.ts |
79.41% (-8.82% 🔻) |
66.67% (-19.05% 🔻) |
100% | 79.41% (-8.82% 🔻) |
🔴 | ... / models.ts |
50% (-49.44% 🔻) |
94.12% (+1.81% 🔼) |
30.77% (-69.23% 🔻) |
50% (-49.44% 🔻) |
🟢 | ... / model.ts |
93.14% (-4.57% 🔻) |
100% | 73.33% (+1.9% 🔼) |
93.14% (-4.57% 🔻) |
🔴 | ... / models.ts |
47.06% (-52.94% 🔻) |
100% | 0% (-100% 🔻) |
47.06% (-52.94% 🔻) |
🟡 | ... / load.ts |
66.33% (+7.14% 🔼) |
47.37% (-8.19% 🔻) |
83.33% (+16.67% 🔼) |
66.33% (+7.14% 🔼) |
🟡 | ... / github-reader.ts |
65.52% (-23.77% 🔻) |
85.71% (+10.71% 🔼) |
71.43% (-11.9% 🔻) |
65.52% (-23.77% 🔻) |
🟡 | ... / ipfs-reader.ts |
61.9% (-23.81% 🔻) |
72.73% (+9.09% 🔼) |
71.43% (-11.9% 🔻) |
61.9% (-23.81% 🔻) |
🟡 | ... / local-reader.ts |
67.5% (-18.55% 🔻) |
100% (+37.5% 🔼) |
83.33% (-16.67% 🔻) |
67.5% (-18.55% 🔻) |
🟢 | ... / reader.ts |
81.58% (-7.89% 🔻) |
50% (-25% 🔻) |
100% | 81.58% (-7.89% 🔻) |
🟡 | ... / utils.ts |
73.05% (+10.34% 🔼) |
72.73% (-0.44% 🔻) |
65.38% (+9.38% 🔼) |
73.05% (+10.34% 🔼) |
🔴 | ... / base.ts |
45.79% (-52.21% 🔻) |
100% | 40% (-40% 🔻) |
45.79% (-52.21% 🔻) |
🔴 | ... / models.ts |
26.35% (-73.65% 🔻) |
100% | 0% (-100% 🔻) |
26.35% (-73.65% 🔻) |
🟢 | ... / NodeConfig.ts |
88.51% (-0.1% 🔻) |
79.03% (-0.6% 🔻) |
85.11% (-0.94% 🔻) |
88.51% (-0.1% 🔻) |
🟡 | ... / ProjectUpgrade.service.ts |
78.72% (-8.35% 🔻) |
80.72% (-10.64% 🔻) |
92.31% (+1% 🔼) |
78.72% (-8.35% 🔻) |
🟢 | ... / configure.module.ts |
82.51% (-2.06% 🔻) |
72% (+8% 🔼) |
100% | 82.51% (-2.06% 🔻) |
🟢 | ... / db.module.ts |
89.06% (+0.78% 🔼) |
62.5% (-20.83% 🔻) |
80% | 89.06% (+0.78% 🔼) |
🟢 | ... / SchemaMigration.service.ts |
84.04% (-3.52% 🔻) |
81.82% (+0.57% 🔼) |
83.33% (-16.67% 🔻) |
84.04% (-3.52% 🔻) |
🟡 | ... / migration-helpers.ts |
75.28% (-0.74% 🔻) |
88.24% (+7.64% 🔼) |
90.91% | 75.28% (-0.74% 🔻) |
🟡 | ... / migration.ts |
73.17% (-9.12% 🔻) |
83.33% (+3.6% 🔼) |
85% (-5.48% 🔻) |
73.17% (-9.12% 🔻) |
🟡 | ... / StoreOperations.ts |
65.88% (-26.43% 🔻) |
60% (-25% 🔻) |
87.5% (-12.5% 🔻) |
65.88% (-26.43% 🔻) |
🔴 | ... / benchmark.service.ts |
43.36% (-11.89% 🔻) |
66.67% | 36.36% (-3.64% 🔻) |
43.36% (-11.89% 🔻) |
🔴 | ... / base-block-dispatcher.ts |
17.61% (-29.74% 🔻) |
100% | 4.55% (-5.45% 🔻) |
17.61% (-29.74% 🔻) |
🔴 | ... / block-dispatcher.ts |
29.72% (-11.27% 🔻) |
66.67% | 28.57% | 29.72% (-11.27% 🔻) |
🔴 | ... / worker-block-dispatcher.ts |
15.02% (-35.19% 🔻) |
100% | 0% (-27.27% 🔻) |
15.02% (-35.19% 🔻) |
🟢 | ... / coreDictionary.ts |
94.67% (-5.33% 🔻) |
88.24% (-6.21% 🔻) |
88.89% (-11.11% 🔻) |
94.67% (-5.33% 🔻) |
🟡 | ... / dictionary.service.ts |
68.47% (-16.67% 🔻) |
82.86% (-2.86% 🔻) |
83.33% (-7.58% 🔻) |
68.47% (-16.67% 🔻) |
🟢 | ... / dictionaryV1.ts |
89.8% (-3.43% 🔻) |
75.56% (-2.71% 🔻) |
100% | 89.8% (-3.43% 🔻) |
🟡 | ... / dictionaryV2.ts |
67.37% (-14.31% 🔻) |
76.92% (+11.71% 🔼) |
88.89% (-11.11% 🔻) |
67.37% (-14.31% 🔻) |
🔴 | ... / ds-processor.service.ts |
32.29% (-29.8% 🔻) |
73.33% (-1.67% 🔻) |
58.33% (-29.17% 🔻) |
32.29% (-29.8% 🔻) |
🟡 | ... / dynamic-ds.service.ts |
60.16% (-30.04% 🔻) |
65% (-1.67% 🔻) |
80% (-5.71% 🔻) |
60.16% (-30.04% 🔻) |
🟢 | ... / inMemoryCache.service.ts |
86.21% (-13.79% 🔻) |
100% | 75% (-25% 🔻) |
86.21% (-13.79% 🔻) |
🔴 | ... / indexer.manager.ts |
16.79% (-16.42% 🔻) |
100% | 10% (-2.5% 🔻) |
16.79% (-16.42% 🔻) |
🟢 | ... / PoiBlock.ts |
83.87% (-14.52% 🔻) |
96.55% | 75% (-25% 🔻) |
83.87% (-14.52% 🔻) |
🔴 | ... / poi.service.ts |
55.7% (+31.78% 🔼) |
57.69% (-42.31% 🔻) |
80% (+51.43% 🔼) |
55.7% (+31.78% 🔼) |
🔴 | ... / poiSync.service.ts |
55.88% (-31% 🔻) |
77.61% (+1.05% 🔼) |
88.89% (-3.42% 🔻) |
55.88% (-31% 🔻) |
🟡 | ... / project.service.ts |
73.54% (-6.46% 🔻) |
77.46% (+7.29% 🔼) |
85.19% (+1.19% 🔼) |
73.54% (-6.46% 🔻) |
🔴 | ... / sandbox.ts |
59.09% (-8.89% 🔻) |
53.33% (-3.81% 🔻) |
57.14% (-4.4% 🔻) |
59.09% (-8.89% 🔻) |
🟡 | ... / store.service.ts |
60.52% (-5.52% 🔻) |
75.41% (+6.99% 🔼) |
80.65% (+23.5% 🔼) |
60.52% (-5.52% 🔻) |
🔴 | ... / entity.ts |
50% (-11.54% 🔻) |
100% | 50% (+50% 🔼) |
50% (-11.54% 🔻) |
🔴 | ... / store.ts |
30% (-2.2% 🔻) |
62.5% (-37.5% 🔻) |
33.33% (+33.33% 🔼) |
30% (-2.2% 🔻) |
🟢 | ... / test.runner.ts |
95.06% (-4.27% 🔻) |
77.78% (+4.44% 🔼) |
75% (-25% 🔻) |
95.06% (-4.27% 🔻) |
🔴 | ... / testing.service.ts |
12% (-16.57% 🔻) |
100% | 0% | 12% (-16.57% 🔻) |
🔴 | ... / unfinalizedBlocks.service.ts |
56.21% (-27.78% 🔻) |
75% (-21.72% 🔻) |
92% (+0.33% 🔼) |
56.21% (-27.78% 🔻) |
🟡 | ... / worker.builder.ts |
60.68% (-18.5% 🔻) |
65.38% | 80% | 60.68% (-18.5% 🔻) |
🔴 | ... / worker.cache.service.ts |
48.78% (-9.76% 🔻) |
100% | 0% | 48.78% (-9.76% 🔻) |
🔴 | ... / worker.connectionPoolState.manager.ts |
38.21% (-22.76% 🔻) |
100% | 0% | 38.21% (-22.76% 🔻) |
🔴 | ... / worker.dynamic-ds.service.ts |
44.44% (-17.78% 🔻) |
100% | 0% | 44.44% (-17.78% 🔻) |
🔴 | ... / worker.service.ts |
20.35% (-24.29% 🔻) |
100% | 0% | 20.35% (-24.29% 🔻) |
🔴 | ... / worker.ts |
41.18% (-1.28% 🔻) |
100% | 0% | 41.18% (-1.28% 🔻) |
🔴 | ... / worker.unfinalizedBlocks.service.ts |
26.79% (-73.21% 🔻) |
100% | 0% (-100% 🔻) |
26.79% (-73.21% 🔻) |
🔴 | ... / logger.ts |
47.89% (-16.59% 🔻) |
33.33% | 40% (+20% 🔼) |
47.89% (-16.59% 🔻) |
🔴 | ... / event.listener.ts |
15.15% (-65.66% 🔻) |
100% | 0% (-25% 🔻) |
15.15% (-65.66% 🔻) |
🔴 | ... / health.controller.ts |
37.93% (-17.24% 🔻) |
100% | 0% (-50% 🔻) |
37.93% (-17.24% 🔻) |
🔴 | ... / health.service.ts |
21.05% (-36.48% 🔻) |
100% | 0% (-20% 🔻) |
21.05% (-36.48% 🔻) |
🔴 | ... / meta.service.ts |
34.26% (-35.26% 🔻) |
100% (+20% 🔼) |
0% (-40% 🔻) |
34.26% (-35.26% 🔻) |
🔴 | ... / ready.controller.ts |
34.78% (-21.74% 🔻) |
100% | 0% (-50% 🔻) |
34.78% (-21.74% 🔻) |
🔴 | ... / ready.service.ts |
37.5% (-54.17% 🔻) |
100% | 0% (-66.67% 🔻) |
37.5% (-54.17% 🔻) |
🔴 | ... / forceClean.service.ts |
21.05% (-5.26% 🔻) |
100% | 0% | 21.05% (-5.26% 🔻) |
🔴 | ... / reindex.service.ts |
18.62% (-14.71% 🔻) |
100% | 0% | 18.62% (-14.71% 🔻) |
🟡 | ... / blocks.ts |
71.21% (-28.79% 🔻) |
91.67% (+2.78% 🔼) |
75% (-25% 🔻) |
71.21% (-28.79% 🔻) |
🟡 | ... / project.ts |
71.88% (-1.49% 🔻) |
75% (+0.42% 🔼) |
77.78% | 71.88% (-1.49% 🔻) |
🟢 | ... / promise.ts |
86.44% (-5.32% 🔻) |
100% (+13.64% 🔼) |
71.43% (-14.29% 🔻) |
86.44% (-5.32% 🔻) |
🟢 | ... / reindex.ts |
82.05% (+48.01% 🔼) |
14.29% (-85.71% 🔻) |
100% (+100% 🔼) |
82.05% (+48.01% 🔼) |
🔴 | ... / yargs.ts |
40.69% (-4.8% 🔻) |
100% | 14.29% | 40.69% (-4.8% 🔻) |
🟡 | ... / apiPromise.connection.ts |
78.13% (+9.05% 🔼) |
54.55% (-25.45% 🔻) |
66.67% (+23.81% 🔼) |
78.13% (+9.05% 🔼) |
🟡 | ... / block-dispatcher.service.ts |
62.83% (-6.04% 🔻) |
100% | 28.57% (+3.57% 🔼) |
62.83% (-6.04% 🔻) |
🔴 | ... / worker-block-dispatcher.service.ts |
24.16% (-12.8% 🔻) |
100% | 0% | 24.16% (-12.8% 🔻) |
🟢 | ... / substrateDictionary.service.ts |
98.11% (+7.55% 🔼) |
66.67% (-6.06% 🔻) |
100% (+20% 🔼) |
98.11% (+7.55% 🔼) |
🟢 | ... / substrateDictionaryV1.ts |
85.19% (-0.3% 🔻) |
78.72% (+8.96% 🔼) |
84.62% (+1.28% 🔼) |
85.19% (-0.3% 🔻) |
🟡 | ... / substrateDictionaryV2.ts |
73.03% (-2.48% 🔻) |
75% | 33.33% | 73.03% (-2.48% 🔻) |
🟢 | ... / fetch.module.ts |
89.6% (-2.27% 🔻) |
50% (-25% 🔻) |
100% | 89.6% (-2.27% 🔻) |
🔴 | ... / indexer.manager.ts |
50% (-7.55% 🔻) |
100% | 20% (+10.91% 🔼) |
50% (-7.55% 🔻) |
🟡 | ... / base-runtime.service.ts |
72.17% (-0.15% 🔻) |
76.92% (+1.92% 🔼) |
77.78% (+2.78% 🔼) |
72.17% (-0.15% 🔻) |
🟢 | ... / runtimeService.ts |
94.52% (+2.31% 🔼) |
81.82% (-7.07% 🔻) |
100% (+20% 🔼) |
94.52% (+2.31% 🔼) |
🟡 | ... / types.ts |
70.45% (-14.84% 🔻) |
100% | 0% | 70.45% (-14.84% 🔻) |
🟢 | ... / unfinalizedBlocks.service.ts |
85.45% (-0.82% 🔻) |
100% | 60% (+10% 🔼) |
85.45% (-0.82% 🔻) |
🔴 | ... / http.ts |
50.58% (-29.34% 🔻) |
50% (+10% 🔼) |
42.86% (+12.09% 🔼) |
50.58% (-29.34% 🔻) |
🟢 | ... / project.ts |
88.73% (-0.16% 🔻) |
68.18% | 87.5% | 88.73% (-0.16% 🔻) |
🟢 | ... / buffer.ts |
95.12% (-4.88% 🔻) |
95.83% (-4.17% 🔻) |
90.48% (+6.27% 🔼) |
95.12% (-4.88% 🔻) |
🟡 | ... / logger.ts |
69.19% (-0.41% 🔻) |
48.15% (-6.85% 🔻) |
78.57% (+3.57% 🔼) |
69.19% (-0.41% 🔻) |
Test suite run failed
Failed tests: 9/600. Failed suites: 3/107.
● Dictionary service › init Dictionaries with mutiple endpoints, only valid dictionary will be added
expect(received).toBe(expected) // Object.is equality
Expected: 2
Received: 1
111 |
112 | it('init Dictionaries with mutiple endpoints, only valid dictionary will be added', () => {
> 113 | expect((dictionaryService as any)._dictionaries.length).toBe(2);
| ^
114 | });
115 |
116 | it('can find valid dictionary with height', () => {
at Object.<anonymous> (packages/node-core/src/indexer/dictionary/dictionary.service.spec.ts:113:61)
● Dictionary service › can find valid dictionary with height
expect(received).toBe(expected) // Object.is equality
Expected: "https://dict-tyk.subquery.network/query/eth-mainnet"
Received: "http://mock-dictionary-v2/rpc"
123 | expect((dictionaryService as any).getDictionary(100)).toBeTruthy();
124 | // Current only valid endpoint been provided
> 125 | expect((dictionaryService as any).getDictionary(100).dictionaryEndpoint).toBe(
| ^
126 | 'https://dict-tyk.subquery.network/query/eth-mainnet'
127 | );
128 | });
at Object.<anonymous> (packages/node-core/src/indexer/dictionary/dictionary.service.spec.ts:125:78)
● Dictionary service › scopedDictionaryEntries, if query failed/timeout, should try next valid dictionary for query
expect(jest.fn()).toHaveBeenCalledTimes(expected)
Expected number of calls: 2
Received number of calls: 3
161 | expect(spyPassGetData).toHaveBeenCalledTimes(1);
162 | // failed 1 time + 1 retry
> 163 | expect(spyScopedDictionaryEntries).toHaveBeenCalledTimes(2);
| ^
164 | expect(dictionaryService.currentDictionaryIndex).toBe(1);
165 | });
166 |
at Object.<anonymous> (packages/node-core/src/indexer/dictionary/dictionary.service.spec.ts:163:40)
● Dictionary service › tried all dictionaries but all failed will return undefined
expect(jest.fn()).toHaveBeenCalledTimes(expected)
Expected number of calls: 3
Received number of calls: 2
178 | const spyScopedDictionaryEntries = jest.spyOn(dictionaryService as any, '_scopedDictionaryEntries');
179 | const blocks = await dictionaryService.scopedDictionaryEntries(1000, 11000, 100);
> 180 | expect(spyScopedDictionaryEntries).toHaveBeenCalledTimes(3);
| ^
181 | expect(blocks).toBeUndefined();
182 | }, 50000);
183 | });
at Object.<anonymous> (packages/node-core/src/indexer/dictionary/dictionary.service.spec.ts:180:40)
● CLI deploy, delete, promote › reDeploy to Hosted Service
thrown: "Exceeded timeout of 120000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."
152 | });
153 |
> 154 | it('reDeploy to Hosted Service', async () => {
| ^
155 | const {ipfs, org, projectName, type} = projectSpec;
156 | const newIPFS = 'QmbKvrzwSmzTZi5jrhEpa6yDDHQXRURi5S4ztLgJLpBxAi';
157 | const validator = await ipfsCID_validate(projectSpec.ipfs, testAuth, ROOT_API_URL_PROD);
at packages/cli/src/controller/deploy-controller.test.ts:154:3
at Object.<anonymous> (packages/cli/src/controller/deploy-controller.test.ts:79:1)
● Cli publish › should upload appropriate project to IPFS
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ClaimRecord.ts(75,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ClaimRecord.ts(81,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ForgeRecord.ts(81,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ForgeRecord.ts(87,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/NFT.ts(63,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/NFT.ts(69,48)
TS2558: Expected 0 type arguments, but got 1.
44 | const outputDir = path.resolve(directory, flags.output ?? 'dist');
45 |
> 46 | await runWebpack(buildEntries, directory, outputDir, isDev, true);
| ^
47 | if (!flags.silent) {
48 | this.log('Building and packing code ...');
49 | this.log('Done!');
at Object.error (node_modules/@oclif/core/lib/errors/index.js:27:15)
at Build.error (node_modules/@oclif/core/lib/command.js:139:23)
at Build.run (packages/cli/src/commands/build/index.ts:46:18)
at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
at async createMultiChainTestProject (packages/cli/src/createProject.fixtures.ts:89:5)
at async Promise.all (index 1)
at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:18:21)
● Cli publish › convert to deployment and removed descriptive field
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ClaimRecord.ts(75,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ClaimRecord.ts(81,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ForgeRecord.ts(81,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ForgeRecord.ts(87,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/NFT.ts(63,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/NFT.ts(69,48)
TS2558: Expected 0 type arguments, but got 1.
44 | const outputDir = path.resolve(directory, flags.output ?? 'dist');
45 |
> 46 | await runWebpack(buildEntries, directory, outputDir, isDev, true);
| ^
47 | if (!flags.silent) {
48 | this.log('Building and packing code ...');
49 | this.log('Done!');
at Object.error (node_modules/@oclif/core/lib/errors/index.js:27:15)
at Build.error (node_modules/@oclif/core/lib/command.js:139:23)
at Build.run (packages/cli/src/commands/build/index.ts:46:18)
at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
at async createMultiChainTestProject (packages/cli/src/createProject.fixtures.ts:89:5)
at async Promise.all (index 1)
at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:18:21)
● Cli publish › convert js object to JSON object
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ClaimRecord.ts(75,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ClaimRecord.ts(81,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ForgeRecord.ts(81,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ForgeRecord.ts(87,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/NFT.ts(63,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/NFT.ts(69,48)
TS2558: Expected 0 type arguments, but got 1.
44 | const outputDir = path.resolve(directory, flags.output ?? 'dist');
45 |
> 46 | await runWebpack(buildEntries, directory, outputDir, isDev, true);
| ^
47 | if (!flags.silent) {
48 | this.log('Building and packing code ...');
49 | this.log('Done!');
at Object.error (node_modules/@oclif/core/lib/errors/index.js:27:15)
at Build.error (node_modules/@oclif/core/lib/command.js:139:23)
at Build.run (packages/cli/src/commands/build/index.ts:46:18)
at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
at async createMultiChainTestProject (packages/cli/src/createProject.fixtures.ts:89:5)
at async Promise.all (index 1)
at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:18:21)
● Cli publish › Get directory CID from multi-chain project
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ClaimRecord.ts(75,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ClaimRecord.ts(81,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ForgeRecord.ts(81,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/ForgeRecord.ts(87,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/NFT.ts(63,48)
TS2558: Expected 0 type arguments, but got 1.
[tsl] ERROR in /tmp/2CwBB0/multi_mocked_starter/src/types/models/NFT.ts(69,48)
TS2558: Expected 0 type arguments, but got 1.
44 | const outputDir = path.resolve(directory, flags.output ?? 'dist');
45 |
> 46 | await runWebpack(buildEntries, directory, outputDir, isDev, true);
| ^
47 | if (!flags.silent) {
48 | this.log('Building and packing code ...');
49 | this.log('Done!');
at Object.error (node_modules/@oclif/core/lib/errors/index.js:27:15)
at Build.error (node_modules/@oclif/core/lib/command.js:139:23)
at Build.run (packages/cli/src/commands/build/index.ts:46:18)
at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
at async createMultiChainTestProject (packages/cli/src/createProject.fixtures.ts:89:5)
at async Promise.all (index 1)
at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:18:21)
Report generated by 🧪jest coverage report action from f730b7d
packages/node-core/src/indexer/blockDispatcher/block-dispatcher.ts
Outdated
Show resolved
Hide resolved
@@ -115,7 +113,7 @@ export abstract class WorkerBlockDispatcher<DS, W extends Worker, B> | |||
let startIndex = 0; | |||
while (startIndex < heights.length) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can remove this loop.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why? This code doesn't relate to the PR or changes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because after the modification, it now only executes the loop once.
|
||
if (size > m * 2) { | ||
// Inverse of the size compared to the median. E.g if a block is 5x as big as the median then the batch size should be 1/5 of the max | ||
const multiplier = 1 / (size / m); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think writing it this way makes it easier to understand. It means scaling down to a smaller concurrency proportionally.
const concurrency = this.#maxConcurrency * (m / size)
// Inverse of the size compared to the median. E.g if a block is 5x as big as the median then the batch size should be 1/5 of the max | ||
const multiplier = 1 / (size / m); | ||
this.setConcurrency(this.#maxConcurrency * multiplier); | ||
} else if (this.#sizes.length % MIN_SIZES === 0) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When this.#sizes is filled, this condition will always be true.
putMany(tasks: Task<T>[]): Promise<T>[] { | ||
return super.putMany(tasks).map((r) => | ||
r.then((d) => { | ||
this.adjustConcurrency(d); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to this approach, we will only affect the last processed block.
Description
Ditches the smart batch size implementation that wasnt working because it didn't correctly calculate block sizes. This new method requires each chain to implement a block size function which is then used to calculate a median size based on the last 1000 indexed blocks. This data is then used to adjust the concurrency of fetching blocks. It will also start indexing with a low concurrency then increase as it has more data to work with.
This is designed to much better deal with large blocks as it will reduce memory usage and requesting large amounts of data at once over the network. It is not a perfect solution but should be a good step forward. In cases where large blocks are not dealt with a restart and low startup concurrency should avoid getting stuck indexing.
TODO
Fixes # (issue)
Type of change
Please delete options that are not relevant.
Checklist